package com.designpattern.factory.yiban;

public class Main {

    /**
     * 一般工厂 vs 简单工厂
     * 简单工厂：在工厂的方法里已经包含了计算的逻辑，客户端端只需要把计算的类型告诉工厂 就可以计算。缺点是 当我需要新增一个 算法，需要修改case 类，违反了开必原则
     * 一般工厂：定义一个创建工厂的接口，具体的实现由工厂子类实现，由客户端控制娜种计算类型。 优点，没有case 判断，缺点 case 判断由客户端承担了
     *
     * 简单工厂违（1）反开闭眼则（2） 具体逻辑在工厂方法中
     * 一般工厂（1）符合开必原则（2） 具体逻辑在具体的子类中
     * @param args
     */
    public static void main(String[] args) {

        Double a = 12d;
        Double b = 14d;

        IFactory factory = new AddFactory();
        System.out.println(factory.create().exec(a, b));
    }
}
